<template>
	<view :style="viewColor">
		<view class='my-account'>
			<view class='wrapper'>
				<view class='header'>
					<view class='headerCon'>
						<view class='account acea-row row-top row-between'>
							<view class='assets'>
								<view class='money'>总资产(元)</view>
								<view class='money'>佣金:<text>{{userInfo.now_money || 0}}</text></view>
								<view class='money'>鱼币:<text>{{userInfo.yubi_money || 0}}</text></view>
							</view>
							<!-- <navigator url="/pages/users/user_payment/index" hover-class="none" class='recharge t-color'>佣金充值</navigator> -->
							<view>
								<navigator url="/pages/users/user_cash/index" hover-class="none" class='recharge t-color'>佣金提现</navigator>
								<navigator url="/pages/users/user_payment/index" hover-class="none" class='recharge t-color'>鱼币转佣金</navigator>
							</view>
						</view>
					</view>
				</view>
				<view class='nav acea-row row-middle'>
					<view class='item' hover-class='none' v-for="(item, index) in categoryList" :key="index"  @click="setType(item.type)">
						<view :class="check_type == item.type ? 'item-on' : ''">{{item.name}}</view>
					</view>
				</view>
			</view>
			<view class='sign-record'>
				<view class='list' v-for="(item,index) in userBillList" :key="index">
					<view class='item'>
						<!-- <view class='data'>{{item.time}}</view> -->
						<view class='listn' v-if="check_type != 2">
							<view class='itemn acea-row row-between-wrapper'>
								<view class="icon"><image :src="domain + '/uploads/def/20230727/eaf6db491270fbfb48e60947e9543e0e.png'" mode="widthFix"></view>
								<view>
									<view class='name line1'>{{item.title}}</view>
									<view>{{item.create_time}}</view>
								</view>
								<view class='num' v-if="item.pm ==1">+{{item.number}}</view>
								<view class='num p-color' v-else>-{{item.number}}</view>
							</view>
						</view>
						<view class='listn' v-else>
							<view class='itemn acea-row row-between-wrapper'>
								<view>
									<block v-if="item.status>=0">
										<view class='name line1' v-if="item.extract_type == 0">银行卡提现</view>
										<view class='name line1' v-if="item.extract_type == 1">微信提现</view>
										<view class='name line1' v-if="item.extract_type == 2">支付宝提现</view>
										<view class='name line1' v-if="item.extract_type == 3">提现到零钱</view>
									</block>
									<block v-else>
										<view class='name line1'>提现失败<text class="message">({{item.fail_msg}})</text></view>
									</block>
									<view>{{item.create_time}}</view>
								</view>
								<view class='nums' v-if="item.status>=0">-{{item.extract_price}}</view>
								<view class='nums p-color' v-else>+{{item.extract_price}}</view>
							</view>
						</view>
					</view>
				</view>
				<view class='loadingicon acea-row row-center-wrapper' v-if="userBillList.length>0">
					<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}}
				</view>
				<view v-if="userBillList.length == 0">
					<emptyPage title="暂无账单的记录哦～"></emptyPage>
				</view>
			</view>
			<view class='sign-record' v-if="type==1">
				<block v-for="(item,index) in recordList" :key="index" v-if="recordList.length>0">
					<view class='list'>
						<view class='item'>
							<!-- <view class='data'>{{item.create_time}}</view> -->
							<view class='listn'>
								<view class='itemn acea-row row-between-wrapper'>
									<view>
										<block v-if="item.status>=0">
											<view class='name line1' v-if="item.extract_type == 0">银行卡提现</view>
											<view class='name line1' v-if="item.extract_type == 1">微信提现</view>
											<view class='name line1' v-if="item.extract_type == 2">支付宝提现</view>
											<view class='name line1' v-if="item.extract_type == 3">提现到零钱</view>
										</block>
										<block v-else>
											<view class='name line1'>提现失败<text class="message">({{item.fail_msg}})</text></view>
										</block>
										<view>{{item.create_time}}</view>
									</view>
									<view class='nums' v-if="item.status>=0">-{{item.extract_price}}</view>
									<view class='nums p-color' v-else>+{{item.extract_price}}</view>
			
								</view>
							</view>
						</view>
					</view>
				</block>
				<view v-if="recordList.length == 0">
					<emptyPage title='暂无提现记录~'></emptyPage>
				</view>
			</view>
			<!-- <recommend v-if="recommend_switch == 1" :hostProduct="hostProduct" :isLogin="isLogin"></recommend> -->
		</view>
		<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
	</view>
</template>

<script>
	 
	let app = getApp();
	import {
		getProductHot
	} from '@/api/store.js';
	import {
		openRechargeSubscribe
	} from '@/utils/SubscribeMessage.js';
	import {
		getUserInfo,
		userActivity,
		getCommissionInfo,
		extractLst
	} from '@/api/user.js';
	import {
		mapGetters
	} from "vuex";
	import recommend from '@/components/recommend/index';
	import authorize from '@/components/Authorize';
	import { configMap } from '@/utils';
	import { HTTP_REQUEST_URL } from '@/config/app';
	export default {
		components: {
			recommend,
			authorize,
		},
		data() {
			return {
				domain: HTTP_REQUEST_URL,
				userInfo: {},
				hostProduct: [],
				isClose: false,
				activity: {},
				isAuto: false, //没有授权的不会自动授权
				isShowAuth: false ,//是否隐藏授权
				hotScroll:false,
				hotPage:1,
				hotLimit:10,
				loadTitle: '加载更多',
				loading: false,
				loadend: false,
				page: 1,
				limit: 15,
				check_type: 1,
				category: 'now_money',
				type: '',
				userBillList: [],
				categoryList: [
					{
						type: 1,
						name: '收入记录'
					},
					{
						type: 2,
						name: '提现记录'
					},
					{
						type: 3,
						name: '鱼币记录'
					}
				]
			};
		},
		computed: configMap(['recharge_switch', 'balance_func_status','recommend_switch'], mapGetters(['isLogin','viewColor','keyColor'])),
		onLoad() {
			if (this.isLogin) {
				this.getUserInfo()
				this.get_host_product();
				this.getUserBillList();
			} else {
				this.isAuto = true;
                this.isShowAuth = true
			}
		},
		onReady() {
		},
		methods: {
			getUserInfo(){
				getUserInfo().then(res=>{
					this.userInfo = res.data
				})
			},
			onLoadFun: function() {
				this.isShowAuth = false;
				this.getUserInfo();
				this.get_host_product();
				this.getUserBillList();
			},
			// 授权关闭
			authColse: function(e) {
				this.isShowAuth = e
			},
			// #ifdef MP
			openSubscribe: function(page) {
				uni.showLoading({
					title: '正在加载',
				})
				openRechargeSubscribe().then(res => {
					uni.hideLoading();
					uni.navigateTo({
						url: page,
					});
				}).catch(() => {
					uni.hideLoading();
				});
			},
			// #endif
			/**
			 * 获取我的推荐
			 */
			get_host_product: function() {
				let that = this;
				if(that.hotScroll) return
				getProductHot(
					that.hotPage,
					that.hotLimit,
				).then(res => {
					that.hotPage++
					that.hotScroll = res.data.list.length<that.hotLimit
					that.hostProduct = that.hostProduct.concat(res.data.list)
				});
			},
			setType(type) {
				this.check_type = type;
				this.loadend = false;
				this.loading = false;
				this.page = 1;
				this.$set(this, 'userBillList', []);
				if(type == 1) {
					this.category = 'now_money'
				} else if(type == 2) {
					this.category = 'extract'
				} else if(type == 3) {
					this.category = 'yubi_money'
				}
				if(type != 2) {
					this.getUserBillList();
				} else {
					this.getRecordList();
				}
			},
			/**
			 * 获取账户明细
			 */
			getUserBillList: function() {
				let that = this;
				if (that.loadend) return;
				if (that.loading) return;
				that.loading = true;
				that.loadTitle = "";
				let data = {
					page: that.page,
					limit: that.limit,
					category: that.category,
					type:that.type
				}
				getCommissionInfo(data).then(function(res) {
					let list = res.data.list,
						loadend = list.length < that.limit;
					that.userBillList = that.$util.SplitArray(list, that.userBillList);
					that.$set(that, 'userBillList', that.userBillList);
					that.loadend = loadend;
					that.loading = false;
					that.loadTitle = loadend ? "哼??~我也是有底线的~" : "加载更多";
					that.page = that.page + 1;
				}, function(res) {
					that.loading = false;
					that.loadTitle = '加载更多';
				});
			},
			getRecordList: function() {
				let that = this;
				let page = that.page;
				let limit = that.limit;
				let loadend = that.loadend;
				let recordType = 0;
				let recordList = that.userBillList;
				let recordListNew = [];
				if (loadend == true) return;
				extractLst({
					page: page,
					limit: limit
				}, recordType).then(res => {
					let len = res.data.list.length;
					let recordListData = res.data.list;
					recordListNew = recordList.concat(recordListData);
					that.loadend = limit > len;
					that.page+=1;
					that.$set(that, 'userBillList', recordListNew);
				});
			},
		},
		onReachBottom() {
			this.get_host_product();
		},
		// 滚动监听
		onPageScroll(e) {
			// 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件
			uni.$emit('scroll');
		}
	}
</script>

<style scoped lang="scss">
	.my-account .wrapper {
		background-color: #fff;
		padding: 32rpx 0 34rpx 0;
		margin-bottom: 14rpx;
	}

	.my-account .wrapper .header {
		width: 690rpx;
		height: 330rpx;
		background-image: linear-gradient(to right, var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
		border-radius: 16rpx;
		margin: 0 auto;
		box-sizing: border-box;
		color: rgba(255, 255, 255, 0.6);
		font-size: 24rpx;
	}
	.t-color{color:#000;}
	.my-account .wrapper .header .headerCon {
		background-image: url('');
		background-repeat: no-repeat;
		background-size: 100%;
		height: 100%;
		width: 100%;
		padding: 36rpx 0 29rpx 0;
		box-sizing: border-box;
	}

	.my-account .wrapper .header .headerCon .account {
		padding: 0 35rpx;
	}
	.my-account .wrapper .header .headerCon .account .assets {
		color: #000;
		line-height: 80rpx;
	}
	.my-account .wrapper .header .headerCon .account .assets .money {
		font-size: 36rpx;
		color: #000;
		// font-family: 'Guildford Pro';
		text {
			font-weight: bold;
		}
	}

	.my-account .wrapper .header .headerCon .account .recharge {
		font-size: 30rpx;
		width: 150rpx;
		height: 54rpx;
		border-radius: 27rpx;
		background-color: #fff9f8;
		text-align: center;
		line-height: 54rpx;
		margin-top: 50rpx;
		font-weight: bold;
	}

	.my-account .wrapper .header .headerCon .cumulative {
		margin-top: 46rpx;
	}

	.my-account .wrapper .header .headerCon .cumulative .item {
		flex: 1;
		padding-left: 35rpx;
	}

	.my-account .wrapper .header .headerCon .cumulative .item .money {
		font-size: 48rpx;
		// font-family: 'Guildford Pro';
		color: #000;
		margin-top: 6rpx;
	}

	.my-account .wrapper .nav {
		display: flex;
		padding: 0 30rpx;
		margin-top: 34rpx;
	}

	.my-account .wrapper .nav .item {
		flex: 1;
		text-align: center;
		font-size: 26rpx;
		color: #999;
		.item-on{
			font-size: 36rpx;
			font-weight: bold;
			color: #000;
		}
	}

	.my-account .wrapper .nav .item .pictrue {
		width: 44rpx;
		height: 44rpx;
		margin: 0 auto;
		margin-bottom: 20rpx;
	}

	.my-account .wrapper .nav .item .pictrue image {
		width: 100%;
		height: 100%;
	}

	.my-account .wrapper .advert {
		padding: 0 30rpx;
		margin-top: 30rpx;
	}

	.my-account .wrapper .advert .item {
		background-color: #fff6d1;
		width: 332rpx;
		height: 118rpx;
		border-radius: 10rpx;
		padding: 0 27rpx 0 25rpx;
		box-sizing: border-box;
		font-size: 24rpx;
		color: #e44609;
	}

	.my-account .wrapper .advert .item.on {
		background-color: #fff3f3;
		color: #e96868;
	}

	.my-account .wrapper .advert .item .pictrue {
		width: 78rpx;
		height: 78rpx;
	}

	.my-account .wrapper .advert .item .pictrue image {
		width: 100%;
		height: 100%;
	}

	.my-account .wrapper .advert .item .text .name {
		font-size: 30rpx;
		font-weight: bold;
		color: #f33c2b;
		margin-bottom: 7rpx;
	}

	.my-account .wrapper .advert .item.on .text .name {
		color: #f64051;
	}

	.my-account .wrapper .list {
		padding: 0 30rpx;
	}

	.my-account .wrapper .list .item {
		margin-top: 44rpx;
	}

	.my-account .wrapper .list .item .picTxt .iconfont {
		width: 82rpx;
		height: 82rpx;
		border-radius: 50%;
		background-image: linear-gradient(to right, #ff9389 0%, #f9776b 100%);
		text-align: center;
		line-height: 82rpx;
		color: #fff;
		font-size: 40rpx;
	}

	.my-account .wrapper .list .item .picTxt .iconfont.yellow {
		background-image: linear-gradient(to right, #ffccaa 0%, #fea060 100%);
	}

	.my-account .wrapper .list .item .picTxt .iconfont.green {
		background-image: linear-gradient(to right, #a1d67c 0%, #9dd074 100%);
	}

	.my-account .wrapper .list .item .picTxt {
		width: 428rpx;
		font-size: 30rpx;
		color: #282828;
	}

	.my-account .wrapper .list .item .picTxt .text {
		width: 317rpx;
	}

	.my-account .wrapper .list .item .picTxt .text .infor {
		font-size: 24rpx;
		color: #999;
		margin-top: 5rpx;
	}

	.my-account .wrapper .list .item .bnt {
		font-size: 26rpx;
		color: #282828;
		width: 156rpx;
		height: 52rpx;
		border: 1rpx solid #ddd;
		border-radius: 26rpx;
		text-align: center;
		line-height: 52rpx;
	}

	.my-account .wrapper .list .item .bnt.end {
		font-size: 26rpx;
		color: #aaa;
		background-color: #f2f2f2;
		border-color: #f2f2f2;
	}
	.sign-record .list .item .listn {
		background-color: unset;
		.itemn {
			padding: 40rpx 30rpx;
			margin: 30rpx 30rpx 0;
			height: auto;
			border-bottom: 0;
			background-color: #fff;
			.name {
				font-size: 28rpx;
				font-weight: bold;
				color: #323232;
				line-height: 40rpx;
			}
			.num {
				font-size: 34rpx;
				font-weight: bold;
				color: #EA402C;
				line-height: 48rpx;
			}
			.p-color {
			    color: #EA402C!important;
			}
		}
	}
	.icon {
		width: 60rpx;
		image {
			width:  60rpx;
		}
	}
	.message{
		font-size: 18rpx;
		color: #fc4141;
	}
</style>
